package com.fly.jdbc.h2;

import java.sql.Connection;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

import org.apache.tomcat.jdbc.pool.DataSource;
import org.h2.tools.Server;

import com.fly.utils.DataBaseInit;
import com.fly.utils.DataSourceUtils;

import lombok.extern.slf4j.Slf4j;

/**
 ** 服务式 （Server） 启动H2
 * 
 * @author 00fly
 * @version [版本号, 2025年4月3日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@Slf4j
public class H2ConsoleStart
{
    public static void main(String[] args)
    {
        try
        {
            Server.main("-web", "-tcp", "-ifNotExists", "-browser");
            DataSource dataSource = DataSourceUtils.initBy("jdbc-h2");
            Connection connection = dataSource.getConnection();
            DataBaseInit.initDB(connection, "/sql/h2.sql");
            log.info("{}", connection);
            
            // hold
            Executors.newScheduledThreadPool(1).scheduleAtFixedRate(() -> {
            }, 0L, 30, TimeUnit.MINUTES);
        }
        catch (Exception e)
        {
            log.error(e.getMessage(), e);
        }
    }
}